package cn.hznc.utils;


import cn.hznc.exception.SystemEx;
import cn.hznc.exception.SystemException;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.multipart.MultipartFile;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @Author Administrator
 * @Date 2023/3/22 17:04
 */
public class FileUploadUtil {
    //新文件名称，不设置时默认为原文件名
    private String newFileName = null;

    //设置允许用户上传文件大小,单位:字节
    // 共10M
    private final static long sizeMax = 1048576;


    private final static List<String> extName=new ArrayList<>(Arrays.asList("xls","xlsx"));


    /**
     * 检查上传文件大小
     *
     * @param file file
     * @return
     * @throws SystemException
     */
    public static boolean checkCommonFile(MultipartFile file) throws SystemException{
        // 文件为空
        if (file.isEmpty()){
            throw new SystemException(SystemEx.FILE_EMPTY_ERROR.getCode(),SystemEx.FILE_EMPTY_ERROR.getMsg());
        }
        // 文件大小
        if (file.getSize()>sizeMax){
            throw new SystemException(SystemEx.FILE_SIZE_ERROR.getCode(),SystemEx.FILE_SIZE_ERROR.getMsg());
        }
         //文件类型
        if (!extName.contains(getFileExtension(file.getOriginalFilename()))){
            throw new SystemException(SystemEx.FILE_TYPE_ERROR.getCode(),SystemEx.FILE_TYPE_ERROR.getMsg());
        }
        return true;
    }

    /**
     * 获取扩展名
     *
     * @param fileName
     * @return
     */
    public static String getFileExtension(String fileName) {
        if (StringUtils.isEmpty(fileName)){
            return "";
        }
        if(fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0){
            return fileName.substring(fileName.lastIndexOf(".")+1);
        }else {
            return "";
        }
    }



}

